#ifndef __RK_PCIE_EP_H__
#define __RK_PCIE_EP_H__

#include <stddef.h>

enum EBuff_Type {
    E_SEND = 0, //发送buff
    E_RECV,    //接收buff
};

struct pcie_buff_node {
    unsigned char *vir_addr;
    size_t phy_addr;
    size_t size;
};

//初始化pcie
int rk_pcie_device_init(void);

//反初始化pcie，释放资源
int rk_pcie_device_deinit(void);

//初始化ap
int rk_pcie_ap_init(void);

//反初始化ap
int rk_pcie_ap_deinit(void);

//设置ep状态信息
int rk_pcie_set_ep_info(void *status, size_t status_size);

//获取用户自定义命令
void *rk_pcie_get_user_cmd(void);

//获取可用buff
struct pcie_buff_node *rk_pcie_get_buff(enum EBuff_Type type);

//发送buff
int rk_pcie_send_buff(struct pcie_buff_node *pbuff);

//释放buff
int rk_pcie_release_buff(struct pcie_buff_node *pbuff);

//获取buff最大的size
size_t rk_pcie_get_buff_max_size(enum EBuff_Type type);


#endif
